<?php

/**
 * Permite hacer operaciones con la tabla rol de la base de datos
 * @package simertweb 
 * @subpackage models 
 * @category Administración
 * @author Grecia Espinoza <mrcl2587@gmail.com>
 * @author Juan Maldonado  <jgmaldonadoj@gmail.com>
 * @version 1.0  
 */
class Mrol extends CI_Model {

    public function __construct() {
        parent::__construct();
        $this->load->model('mhistorico');
    }

    /**
     * Obtiene la lista de roles excepto del personal operativo y administrador
     * @return type array
     */
    function listarRoles() {
        $this->db->where('tipo !=', 'Personal Operativo');
        $this->db->where('tipo !=', 'Administrador');
        $query = $this->db->get('rol');
        return $query->result();
    }

    /**
     * Lista todos los roles
     * @return type array
     */
    function listar() {
        $query = $this->db->get('rol');
        return $query;
    }

    /**
     * Obtiene un rol
     * @return type
     */
    function listar_un_rol() {
        $this->db->where('tipo', 'Personal Operativo');
        $query = $this->db->get('rol');
        return $query->result();
    }

    /**
     * Obtiene el id del personal operativo
     * @return type int
     */
    function id_rol() {
        $this->db->where('tipo', 'Personal Operativo');
        $query = $this->db->get('rol');
        return $query->row()->idRol;
    }

    /**
     * Obtiene el id de un rol
     * @param type $rol es el nombre del rol
     * @return type int
     */
    function id_rol2($rol) {
        $this->db->where('tipo', $rol);
        $query = $this->db->get('rol');
        return $query->row()->idRol;
    }

    /**
     * Obtiene el tipo de rol
     * @param type $idRol es el id de rol
     * @return type string
     */
    function obtener_tipo_rol($idRol) {
        $this->db->where('idRol', $idRol);
        $query = $this->db->get('rol');
        return $query->row()->tipo;
    }

    /**
     * Valida si un rol existe o no
     * @param type $rol es el nombre del rol
     * @return boolean
     */
    function validar_rol($rol) {
        $this->db->where('tipo', $rol);
        $query = $this->db->get('rol');
        if ($query->num_rows() == 0) {
            return TRUE;
        } else {
            return FALSE;
        }
    }

    /**
     * Guarda un rol
     */
    function guardarRoles() {
        $data = array(//obtiene los datos del formulario y los almacena en las variables
            'privilegios' => strtoupper($_POST['privi']),
            'tipo' => strtoupper($_POST['ti'])
        );
        $this->db->insert('rol', $data); //guarda los datos en la bd
        $id = mysql_insert_id();
        $this->mhistorico->guardar_acceso($id, "Creación de un rol del sistema");
    }

}

?>
